package com.bsj.power.common.def.vo.pls.httpVo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.bsj.crypt.crypt.aes.AESUtils;
import com.bsj.power.common.def.entity.user.User;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.apache.commons.lang3.StringUtils;

import java.util.Date;
import java.util.Random;

/**
 * @author LiJiaXin
 * @version 1.0.0
 * @description HttpLoginPersonVO
 * @time 2024/7/11 19:32
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class HttpLoginPersonVO {

    /**
     * 人员id
     */
    private String id;

    /**
     * 编号
     */
    private String workcode;

    /**
     * 登录名
     */
    private String loginid;

    /**
     * 密码
     */
    private String password;

    /**
     * 状态: 0试用 1正式 2临时 3试用延期 4解聘 5离职 6退休 7无效
     */
    private String status;

    /**
     * 人员名称
     */
    private String lastname;

    /**
     * 性别
     */
    private String sex;

    /**
     * 邮箱
     */
    private String email;

    /**
     * 办公电话
     */
    private String telephone;

    /**
     * 移动电话
     */
    private String mobile;

    /**
     * 创建日期
     */
    private String createdate;

    /**
     * 修改时间
     */
    private String modified;

    public User change() {
        User user = new User();
        //TODO 新增的时候默认设置账户密码一样
        String temp = StringUtils.isBlank(this.workcode) ? "workcode" : this.workcode;
        temp += StringUtils.isBlank(this.loginid) ? "loginid" : this.loginid;
        temp += this.id;
        temp = AESUtils.encrypt(temp);
        user.setUserName(temp);
        user.setPassword(temp);

        user.setUserType(1);
        user.setId(this.id);
        user.setWorkCode(StringUtils.isBlank(this.workcode) ? null : AESUtils.encrypt(this.workcode));
        user.setLoginId(StringUtils.isBlank(this.loginid) ? null : AESUtils.encrypt(this.loginid));
        user.setWorkStatus(this.status);
        user.setLastName(this.lastname);
        user.setSex(this.sex);
        user.setEmail(this.email);
        user.setTelephone(this.telephone);
        user.setMobile(this.mobile);
        return user;
    }

}
